{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "f397a5b1-de61-46b3-a5cf-8177a014d844",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "data_url=\"http://lib.stat.cmu.edu/datasets/boston\"\n",
    "raw_df=pd.read_csv(data_url,sep=\"\\s+\",skiprows=22,header=None)\n",
    "data=np.hstack([raw_df.values[::2,:],raw_df.values[1::2,:2]])\n",
    "target=raw_df.values[1::2,2]\n",
    "x,y=data,target"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "48466f45-c198-40d8-85c0-1ee726903738",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Linear模型的预测准确率为：0.78363\n",
      "Ridge模型的预测准确率为：0.78905\n",
      "Lasso模型的预测准确率为：0.66948\n"
     ]
    }
   ],
   "source": [
    "from sklearn.linear_model import LinearRegression,Ridge,Lasso\n",
    "from sklearn.model_selection import train_test_split\n",
    "import matplotlib.pyplot as plt\n",
    "x_train,x_test,y_train,y_test=train_test_split(x,y,random_state=1,test_size=0.3)\n",
    "lr=LinearRegression()\n",
    "rd=Ridge()\n",
    "ls=Lasso()\n",
    "models=[lr,rd,ls]\n",
    "names=['Linear','Ridge','Lasso']\n",
    "for model,name in zip(models,names):\n",
    "    model.fit(x_train,y_train)\n",
    "    score=model.score(x_test,y_test)\n",
    "    print(\"%s模型的预测准确率为：%.5f\"%(name,score))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "0f9f3034-9840-481a-adb3-59bd4884f2cc",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Linear模型的最大预测准确率为：0.78363\n",
      "Ridge模型的最大预测准确率为：0.78915\n",
      "Lasso模型的最大预测准确率为：0.78573\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0MAAAJbCAYAAAAmMk+tAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAeXVJREFUeJzt3XlcFWX///H34bCJCi4ooKJiuaC4BUnikpVRVhQthlaapr+yrFzuFkm9LUspK9M7g7Iw626z0tQKK8pySUslNVNzyQVUEDEF3EBgfn/49dydwBTkMAfO6/l4zEPPda6Z+Qzd94xvrplrLIZhGAIAAAAAF+NmdgEAAAAAYAbCEAAAAACXRBgCAAAA4JIIQwAAAABcEmEIAAAAgEsiDAEAAABwSYQhAAAAAC6JMAQAAADAJRGGAAAAALgkwhBwgebOnSuLxaJ169aV+f2ePXtksVg0d+7cqi0MAODSzl6fzi7u7u4KCgrSgAEDtGPHDru+ffr0UZ8+fc67Ta5pcBXuZhcA1BRBQUFavXq1LrnkErNLAQC4oLffflvt2rXTqVOn9OOPP2rKlCn6/vvv9fvvv6t+/fqSpMTERJOrBJwLYQioJF5eXrriiivMLuMfnThxQj4+PmaXAQBwgLCwMEVEREg6MwJUXFysSZMmaeHChRo6dKgkqX379maWCDgdbpMDKklZtxQ8/fTTslgs2rx5swYOHCg/Pz8FBATovvvuU25urt36hmEoMTFRXbp0Ua1atVS/fn3dcccd2rVrl12/1NRU3XLLLWrWrJm8vb116aWX6oEHHlBOTo5dv7P7/uWXX3THHXeofv36jFoBgAs5G4wOHjxoayvrNrkDBw7ozjvvVN26deXn56e4uDhlZWWVuc0333xTbdq0kZeXl9q3b68PPvhAQ4YMUcuWLe36FRYW6rnnnlO7du3k5eWlRo0aaejQoTp06FClHiNwsRgZAqrA7bffrri4OA0bNkybNm1SfHy8JGnOnDm2Pg888IDmzp2rRx99VC+88IL+/PNPTZ48WVFRUdq4caMCAgIkSX/88Ye6d++u4cOHy8/PT3v27NH06dPVs2dPbdq0SR4eHnb7vu222zRgwACNGDFCx48fr7qDBgCYavfu3ZKkNm3anLPPyZMn1bdvXx04cEAJCQlq06aNvvzyS8XFxZXqO3v2bD3wwAO6/fbb9corryg3N1fPPPOMCgoK7PqVlJTolltu0YoVK/TEE08oKipKe/fu1aRJk9SnTx+tW7dOtWrVqtyDBSqIMARUgWHDhunxxx+XJPXt21c7d+7UnDlzlJycLIvFop9++klvvvmmXn75ZY0dO9a2Xq9evdSmTRtNnz5dL7zwgiRpxIgRtu8Nw1BUVJT69OmjFi1aaMmSJbr55pvt9n3vvffqmWeeqYKjBACYqbi4WEVFRbZnhp577jn17t271HXhr9555x1t3bpVixYtsvWLjo7WyZMn9eabb9r6lZSUaNKkSYqMjNSnn35qa+/Zs6cuvfRSNWnSxNb28ccf66uvvtL8+fN122232do7d+6syy+/XHPnztWDDz5YmYcOVBi3yQFV4O8Xok6dOunUqVPKzs6WJH3xxReyWCy65557VFRUZFsCAwPVuXNn/fDDD7Z1s7OzNWLECAUHB8vd3V0eHh5q0aKFJGnr1q2l9n377bc77sAAAE7jiiuukIeHh+rWravrr79e9evX16JFi+Tufu7ffX///feqW7duqevUXXfdZfd527ZtysrK0p133mnX3rx5c/Xo0cOu7YsvvlC9evUUExNjd03r0qWLAgMD7a5pgNkYGQKqQMOGDe0+e3l5STpze4J05n5uwzBst8L9XatWrSSd+c1cdHS0Dhw4oIkTJ6pjx46qXbu2SkpKdMUVV9i291dBQUGVeSgAACf17rvvKjQ0VPn5+Zo3b57eeOMNDRw4UEuWLDnnOocPHy7z2hMYGFiqn6Qy+wYEBNhuyZPOXNOOHj0qT0/PMvf592dcATMRhgAn4O/vL4vFohUrVtiC0l+dbfvtt9+0ceNGzZ07V/fee6/t+507d55z2xaLpfILBgA4ndDQUNukCVdddZWKi4v11ltv6dNPP9Udd9xR5joNGzbUmjVrSrX/fQKFs7/U++tkDOfq6+/vr4YNG+qrr74qc59169Y9/8EAVYTb5AAncNNNN8kwDO3fv18RERGllo4dO0r6X7D5e2B64403qrxmAIBzmzZtmurXr69///vfKikpKbPPVVddpfz8fC1evNiu/YMPPrD73LZtWwUGBurjjz+2a09PT9eqVavs2m666SYdPnxYxcXFZV7T2rZtWwlHB1QORoaAclq6dKn27NlTqv1i3t3Qo0cP3X///Ro6dKjWrVun3r17q3bt2srMzNTKlSvVsWNHPfjgg2rXrp0uueQSjRs3ToZhqEGDBvr888+Vmpp6EUcEAKiJ6tevr/j4eD3xxBP64IMPdM8995TqM3jwYL3yyisaPHiwpkyZotatWyslJUVff/21XT83Nzc988wzeuCBB3THHXfovvvu09GjR/XMM88oKChIbm7/+/36gAED9P777+uGG27QqFGj1K1bN3l4eGjfvn36/vvvdcstt+jWW291+PEDF4IwBJTTk08+WWb7X++Xrog33nhDV1xxhd544w0lJiaqpKRETZo0UY8ePdStWzdJkoeHhz7//HONGjVKDzzwgNzd3dW3b199++23at68+UXtHwBQ8zzyyCOaNWuWJk+erIEDB5b63sfHR0uXLtWoUaM0btw4WSwWRUdH66OPPlJUVJRd3/vvv18Wi0XTpk3TrbfeqpYtW2rcuHFatGiR0tPTbf2sVqsWL16smTNn6r///a8SEhLk7u6uZs2a6corr7Td7QA4A4thGIbZRQAAAKD6OXr0qNq0aaPY2FjNnj3b7HKAcmNkCAAAAOeVlZWlKVOm6KqrrlLDhg21d+9evfLKK8rPz9eoUaPMLg+oEMIQAAAAzsvLy0t79uzRQw89pD///FM+Pj664oor9Prrr6tDhw5mlwdUCLfJAQAAAHBJTK0NAAAAwCURhgAAAAC4JMIQAAAAAJdUYyZQKCkp0YEDB1S3bl1ZLBazywEAl2EYhvLz89WkSRO7Fy+6Oq5LAGCeC742GTVERkaGIYmFhYWFxaQlIyPDYef41157zWjZsqXh5eVlXHbZZcby5cvP2ffee+8ts7727dvb+hQWFhrPPPOM0apVK8PLy8vo1KmTsWTJkova799xXWJhYWExfznftanGjAzVrVtXkpSRkSFfX1+TqwEA15GXl6fg4GDbebiyzZs3T6NHj1ZiYqJ69OihN954Q/369dOWLVvUvHnzUv1nzpyp559/3va5qKhInTt3Vv/+/W1tEyZM0Hvvvac333xT7dq109dff61bb71Vq1atUteuXSu037/jugQA5rnQa1ONmVo7Ly9Pfn5+ys3N5aIDAFXI0effyMhIXXbZZUpKSrK1hYaGKjY2VgkJCeddf+HChbrtttu0e/dutWjRQpLUpEkTjR8/XiNHjrT1i42NVZ06dfTee+9Vyn65LgGAeS70HMzN3QAAp1VYWKi0tDRFR0fbtUdHR2vVqlUXtI3k5GT17dvXFoQkqaCgQN7e3nb9atWqpZUrV1Z4vwUFBcrLy7NbAADOjTAEAHBaOTk5Ki4uVkBAgF17QECAsrKyzrt+ZmamlixZouHDh9u1X3fddZo+fbp27NihkpISpaamatGiRcrMzKzwfhMSEuTn52dbgoODy3OoAAATEIYAAE7v77OxGYZxQTO0zZ07V/Xq1VNsbKxd+8yZM9W6dWu1a9dOnp6eevjhhzV06FBZrdYK7zc+Pl65ubm2JSMj4wKODABgJsIQAMBp+fv7y2q1lhqNyc7OLjVq83eGYWjOnDkaNGiQPD097b5r1KiRFi5cqOPHj2vv3r36/fffVadOHYWEhFR4v15eXvL19bVbAADOjTAEAHBanp6eCg8PV2pqql17amqqoqKi/nHdZcuWaefOnRo2bNg5+3h7e6tp06YqKirS/Pnzdcstt1z0fgEA1UeNmVobAFAzjR07VoMGDVJERIS6d++u2bNnKz09XSNGjJB05va0/fv3691337VbLzk5WZGRkQoLCyu1zZ9//ln79+9Xly5dtH//fj399NMqKSnRE088ccH7BQBUf4QhAIBTi4uL0+HDhzV58mRlZmYqLCxMKSkpttnhMjMzlZ6ebrdObm6u5s+fr5kzZ5a5zVOnTmnChAnatWuX6tSpoxtuuEH//e9/Va9evQveLwCg+uM9QwCAi8L5t2z8XABURH5Bvr7+42v9mP6j7u50tyKaRJhdUrV0oedgRoYAAAAAE+05ukefb/tcn2//XD/s+UGnS05Lkj7Z8om2jtyqul51Ta6w5iIMAQAAAFWoxCjRmv1r9Pm2z7V4+2L9lv2b3fetG7RWfmG+9ufv1+Rlk/Vi9IsmVVrzEYYAAAAABztWeEypf6Tq8+2f68sdXyr7eLbtOzeLm3o276mYNjGKaROjtv5tlbIjRTd+cKNe+ekVDe48WB0DOppYfc1FGAIAAAAcICM3Q59vP3P729LdS1VYXGj7ztfLV/0u7aeYNjHq17qfGtRqYLfuDa1v0K3tbtVnv3+mB798UMuHLpebhbfiVLYK/UQTExMVEhIib29vhYeHa8WKFf/Y//3331fnzp3l4+OjoKAgDR06VIcPH7Z9/+abb6pXr16qX7++6tevr759+2rNmjUVKQ0AAAAwxdnb3yYunagur3dR8xnNNTJlpL7a+ZUKiwvVqn4rjYocpW8HfatDjx/SR3d8pLs73V0qCJ018/qZqu1RWz9m/Kh3N75bZh9cnHKPDM2bN0+jR49WYmKievTooTfeeEP9+vXTli1b1Lx581L9V65cqcGDB+uVV15RTEyM9u/frxEjRmj48OH67LPPJEk//PCDBg4cqKioKHl7e2vatGmKjo7W5s2b1bRp04s/SgAAAMABjhce17e7vrXd/pZ1LMv2nZvFTd2bdT9z+1vbGIX6h8pisVzwtoP9gjXpykl64tsn9Hjq44ppE6OGPg0dcRguq9xTa0dGRuqyyy5TUlKSrS00NFSxsbFKSEgo1f+ll15SUlKS/vjjD1vbq6++qmnTpikjI6PMfRQXF6t+/fqaNWuWBg8efEF1MYUpAJiD82/Z+LkANdf+vP36YvsX+nz75/pu93c6VXTK9l1dz7q67tLrFNMmRje0vkH+Pv4Xta/TxafV9Y2u2nxos+6/7H69EfPGxZbvEhwytXZhYaHS0tI0btw4u/bo6GitWrWqzHWioqI0fvx4paSkqF+/fsrOztann36qG2+88Zz7OXHihE6fPq0GDcoeMpSkgoICFRQU2D7n5eWV51AAAACAC2IYhn7J/MX2/M8vmb/Yfd+yXkvb5AdXtrxSnlbPStu3h9VDSTcmqffc3nrzlzc1tOtQXdHsikrbvqsrVxjKyclRcXGxAgIC7NoDAgKUlZVV5jpRUVF6//33FRcXp1OnTqmoqEg333yzXn311XPuZ9y4cWratKn69u17zj4JCQl65plnylM+AAAAcEFOnj6p73Z/p8+3fa4vdnyhA/kHbN9ZZFFks0hbAAprHFau29/Kq1eLXrq38716Z+M7evDLB7X2/62VuxvzoFWGCk2g8Pf/2IZhnPN/AFu2bNGjjz6qf//730pLS9NXX32l3bt3a8SIEWX2nzZtmj788EMtWLBA3t7e56whPj5eubm5tuVct9wBAAAA5TF3w1wFvBSgmA9jNPuX2TqQf0C1PWrr1na3as7Nc5T1WJZWD1utp3o9pY4BHR0ahM6adu001feurw1ZG5S4NtHh+3MV5YqU/v7+slqtpUaBsrOzS40WnZWQkKAePXro8ccflyR16tRJtWvXVq9evfTcc88pKCjI1vell17S1KlT9e2336pTp07/WIuXl5e8vLzKUz4AAABwToXFhRr91WglrTvzbHywb7Bt8oM+LfvI2/3cv6h3tMa1GyvhmgSN+HKEJiydoP7t+yuobtD5V8Q/KtfIkKenp8LDw5WammrXnpqaqqioqDLXOXHihNzc7HdjtVolnRlROuvFF1/Us88+q6+++koRERHlKQsAAAC4KAfyD+iqd65S0rokWWTR5D6TtWf0Hr1242u6/tLrTQ1CZw2/bLi6Ne2m/MJ8jf1mrNnl1Ajlvk1u7NixeuuttzRnzhxt3bpVY8aMUXp6uu22t/j4eLsZ4GJiYrRgwQIlJSVp165d+vHHH/Xoo4+qW7duatKkiaQzt8ZNmDBBc+bMUcuWLZWVlaWsrCwdO3askg4TAAAAKNuP6T8qfHa4VmWskp+Xn7646wtNvHKi073k1OpmVdKNSXKzuOmj3z7St7u+Nbukaq/c/4Xj4uI0Y8YMTZ48WV26dNHy5cuVkpKiFi1aSJIyMzOVnp5u6z9kyBBNnz5ds2bNUlhYmPr376+2bdtqwYIFtj6JiYkqLCzUHXfcoaCgINvy0ksvVcIhAgAAAKUZhqHX1rymPu/0UdaxLIU1DtO6+9fphtY3mF3aOV0WdJlGXj5SkjQyZaQKigrOswb+SbnfM+SseJ8DAJiD82/Z+LkAzu3k6ZN68MsH9c7GdyRJcR3ilHxzsmp71ja5svPLPZWrdq+1U9axLD171bOa0HuC2SU5nQs9BzvX2B8AAADgYHuP7lXPt3vqnY3vyM3ippeufUkf3v5htQhCkuTn7afp0dMlSVNWTNGuI7tMrqj6IgwBAADAZXy761uFzw7XL5m/yN/HX6mDUvWvqH9VyfTYlWlA2ABdHXK1ThWd0iNLHlENudmryhGGAAAAUOMZhqEXf3xR1713nQ6fPKyIJhFKuz9NV4dcbXZpFWKxWPTaDa/Jw81DKTtStPD3hWaXVC0RhgAAAFCjHSs8prhP4/TEt0+oxCjR0C5DtWLoCjX3a252aRelnX87PdHjCUnSqK9G6VghMzGXF2EIAAAANdaOwzt0xVtX6JMtn8jDzUOJNyQq+eZkp3hvUGV4qtdTalmvpTLyMvTssmfNLqfaIQwBAACgRvpi+xeKeDNCmw9tVlCdIP0w5Ac9ePmD1e75oH/i4+GjV/u9Kkma/tN0/Zb9m8kVVS+EIQAAANQoJUaJnv7hacV8GKO8gjz1CO6htPvTFBUcZXZpDnFTm5sU2y5WRSVFeujLh5hMoRwIQwAAAKgxjp46qls+ukXPLHtGkvTw5Q9r6b1LFVQ3yOTKHGvGdTPk4+GjFekr9N9f/2t2OdUGYQgAAAA1wm/Zv+nyNy/XF9u/kLe7t+beMlev3vCqPK2eZpfmcC3qtdC/e/9bkvTYN4/pz5N/mlxR9UAYAgAAQLX38eaPdcVbV2jnnzvVwq+FfrzvR93b5V6zy6pSY7qPUftG7XXoxCGN/2682eVUC4QhAAAAVFtFJUV6IvUJxX0ap+Onj6tvq75ad/86XRZ0mdmlVTlPq6cSb0iUJL2R9obW7F9jckXOjzAEAACAainnRI6uf+96vbjqRUnSE1FPaMndS+Tv429yZea5suWVGtRpkAwZevDLB1VcUmx2SU6NMAQAAIBqJ+1AmsJnh+u73d+ptkdtfXzHx3rh2hfk7uZudmmme/HaF1XPu55+yfxFSeuSzC7HqRGGAAAAUK28s+Ed9ZjTQ+m56WrdoLV+Hv6z+nfob3ZZTiOgToCmXj1VkjR+6XhlHcsyuSLnRRgCAABAtVBYXKiHUx7WkEVDVFBcoJva3KQ1/2+NOjTuYHZpTuf+8PsV0SRCeQV5+tc3/zK7HKdFGAIAAIDTy8zP1NXvXK3X1r4miyx6ps8zWjRgkep51zO7NKdkdbPq9Rtfl0UWfbDpAy3dvdTskpwSYQgAAABObVXGKoXPDtePGT/Kz8tPnw/8XP++8t9ys/BP2X8S3iRcD13+kCTpoS8fUmFxockVOR/+FwQAcHqJiYkKCQmRt7e3wsPDtWLFinP2HTJkiCwWS6mlQwf722hmzJihtm3bqlatWgoODtaYMWN06tQp2/dPP/10qW0EBgY67BgBlGYYhhLXJqrP3D7KPJapDo06aO3/W6sb29xodmnVxnNXP6eA2gHadnibXlr1ktnlOB3CEADAqc2bN0+jR4/W+PHjtX79evXq1Uv9+vVTenp6mf1nzpypzMxM25KRkaEGDRqof///PVz9/vvva9y4cZo0aZK2bt2q5ORkzZs3T/Hx8Xbb6tChg922Nm3a5NBjBfA/J0+f1H2L79PIlJE6XXJad3a4Uz8N/0mtG7Y2u7RqpZ53Pb0c/bIk6dnlz2r3kd0mV+RcCEMAAKc2ffp0DRs2TMOHD1doaKhmzJih4OBgJSWVPV2sn5+fAgMDbcu6det05MgRDR061NZn9erV6tGjh+666y61bNlS0dHRGjhwoNatW2e3LXd3d7ttNWrUyKHHCri6nBM5+m7Xd5q+erp6zOmhuRvmys3iphevfVEf3f6R6njWMbvEaumujnepT8s+OlV0So9+9agMwzC7JKfBROwAAKdVWFiotLQ0jRs3zq49Ojpaq1atuqBtJCcnq2/fvmrRooWtrWfPnnrvvfe0Zs0adevWTbt27VJKSoruvfdeu3V37NihJk2ayMvLS5GRkZo6dapatWpV5n4KCgpUUFBg+5yXl3ehhwm4nKKSIm0/vF2/HvxVG7M2auPBM8uB/AN2/RrWaqh5d8zTNa2uManSmsFisSjxhkR1fr2zvtj+hRZvW6xb2t1idllOgTAEAHBaOTk5Ki4uVkBAgF17QECAsrLO/96MzMxMLVmyRB988IFd+4ABA3To0CH17NlThmGoqKhIDz74oF3oioyM1Lvvvqs2bdro4MGDeu655xQVFaXNmzerYcOGpfaVkJCgZ555poJHCtRcR04eORN6Dm60BZ/NhzbrVNGpMvu3qt9KnQM6q0tgF93X9T41821WxRXXTKGNQvVY1GNKWJmgR796VH1b9VVtz9pml2U6whAAwOlZLBa7z4ZhlGory9y5c1WvXj3Fxsbatf/www+aMmWKEhMTFRkZqZ07d2rUqFEKCgrSxIkTJUn9+vWz9e/YsaO6d++uSy65RO+8847Gjh1bal/x8fF27Xl5eQoODi7PYQLVWnFJsf448ofdSM+vB39Vem7Zz/fV9qitjgEd1Tmg85klsLM6Nu6oul51q7hy1zGh9wR9sOkD7c3dq2eXP6vn+z5vdkmmIwwBAJyWv7+/rFZrqVGg7OzsUqNFf2cYhubMmaNBgwbJ09PT7ruJEydq0KBBGj58uKQzYef48eO6//77NX78eLm5lX6ktnbt2urYsaN27NhR5v68vLzk5eVVnsMDqq28gjz9evBXu9vcNmVv0onTJ8rs38KvhToFdLKFns4BnXVJg0uYGruK+Xj46D/9/qNbPrpFL69+WYM7D1b7Ru3NLstUhCEAgNPy9PRUeHi4UlNTdeutt9raU1NTdcst/3y/+7Jly7Rz504NGzas1HcnTpwoFXisVqsMwzjng8UFBQXaunWrevXqVYEjAaqnEqNEe47usRvt2Zi1UbuPlj0jmbe7t8Iah9mN9nQK6MSLUZ3IzW1v1s1tb9bibYv10JcP6ft7v7+gkfaaijAEAHBqY8eO1aBBgxQREaHu3btr9uzZSk9P14gRIySduT1t//79evfdd+3WS05OVmRkpMLCwkptMyYmRtOnT1fXrl1tt8lNnDhRN998s6xWqyTpscceU0xMjJo3b67s7Gw999xzysvLKzXJAlATGIah7OPZ2nxoszZnb9Zv2b9p86HN+vXgr8ovzC9znaZ1m9pGeToHnAk9rRu2lrsb/7x0djOvn6nUP1K1bO8yvffrexrUeZDZJZmG/7UCAJxaXFycDh8+rMmTJyszM1NhYWFKSUmxzQ6XmZlZ6p1Dubm5mj9/vmbOnFnmNidMmCCLxaIJEyZo//79atSokWJiYjRlyhRbn3379mngwIHKyclRo0aNdMUVV+inn36ym5UOqI5yTuRoc/ZmW/DZfOhM+Dl88nCZ/T2tnmrfqH2p0R5/H/8qrhyVpWW9lprYe6KeWvqUHkt9TDe1uUn1a9U3uyxTWIwaMtF4Xl6e/Pz8lJubK19fX7PLAQCXwfm3bPxcYLajp47ahZ2z4efg8YNl9rfIolb1W6lD4w7q0OjM0imgk9r5t5OH1aOKq4ejFRYXqvPrnfV7zu96KOIhvXbja2aXVKku9BzMyBAAAEA1ll+Qry2Htvwv8Pxf+Pn7O3v+qmW9lrbAczb8hDYKlY+HTxVWDjN5Wj2VeEOirn73aiWtS9KQLkN0edPLzS6ryhGGAAAAqoHjhce1NWdrqdGec01dLUnNfJupQ6MOCmscZgs+7Ru1Vx3POlVYOZzVVSFX6e6Od+v9Te/rwS8f1M/Df5bVzWp2WVWKMAQAAOAgxSXFOl1yWoXFhXbL6eLSbYXFhXZ9jxUe07acbbbRnt1HdstQ2U83BNUJsru9LaxxmNo3ai8/b78qPmJUNy9Fv6Qvtn+htMw0vZH2hh66/CGzS6pShCEAAOBwhmHY/iF/9nFlQ4bd38vqd7rktIpKinS6+HSpv58u/r/PZfy9staraJA5u5QYJZX6c2zk00gdGndQWKOw/4Wfxh3UoFaDSt0PXEdgnUBNuXqKHl7ysJ767indFnqbAusEml1WlSEMAQDghOK/jdfcjXNLhQVJZQaIsj5fSJ8L3e75Qsu5+sGe1WKVp9VTnlZPeVg9bH+3tbn9r83b3VuX1L/kTPj5v9vcGtVuZPYhoAYaETFCb294W2mZaXo89XH999b/ml1SlSEMAQDghPIK8pR1LMvsMpyKh5uHPKwecndzL/PvHm7/97mMv59zvfNss6yQYhdezhNo/trPw83D5Z7HQPVgdbMq6cYkRb4Vqfd+fU/Dug5Tn5Z9zC6rSjC1NgDgonD+LdvF/lz25e3T4RNn3vty9u3wFlkq9LkytmGxWMr87kL7VXQbZ8OJ1WK19QPgGA99+ZCS1iUp1D9UG0ZskKfV0+ySKoyptQEAqMaa+TZTM99mZpcBwIVMuXqK5m+dr605WzV99XSN6znO7JIczs3sAgAAAACYr36t+nrp2pckSZOXTdbeo3tNrsjxCEMAAAAAJEn3dLpHvVv01smik5r0wySzy3E4whAAAAAASWee2ZvQa4IkaUX6CpOrcTzCEAAAAACb8CbhkqRdR3Yp91SuydU4FmEIAAAAgE2DWg3U3K+5JOnXg7+aXI1jEYYAAAAA2OkS2EWStCFrg6l1OBphCAAAAICdLgFdJEnrs9abW4iDEYYAAAAA2GFkCAAAAIBLOhuGNh/arMLiQnOLcSDCEAAAAAA7Leu1lJ+XnwqLC/V7zu9ml+MwFQpDiYmJCgkJkbe3t8LDw7VixT/PQf7++++rc+fO8vHxUVBQkIYOHarDhw/b9Zk/f77at28vLy8vtW/fXp999llFSgMAAABwkSwWi0vcKlfuMDRv3jyNHj1a48eP1/r169WrVy/169dP6enpZfZfuXKlBg8erGHDhmnz5s365JNPtHbtWg0fPtzWZ/Xq1YqLi9OgQYO0ceNGDRo0SHfeead+/vnnih8ZAAAAgAojDJVh+vTpGjZsmIYPH67Q0FDNmDFDwcHBSkpKKrP/Tz/9pJYtW+rRRx9VSEiIevbsqQceeEDr1q2z9ZkxY4auvfZaxcfHq127doqPj9c111yjGTNmVPjAAAAAAFQcYehvCgsLlZaWpujoaLv26OhorVq1qsx1oqKitG/fPqWkpMgwDB08eFCffvqpbrzxRluf1atXl9rmddddd85tSlJBQYHy8vLsFgAAAACV42wYWp+1XoZhmFuMg5QrDOXk5Ki4uFgBAQF27QEBAcrKyipznaioKL3//vuKi4uTp6enAgMDVa9ePb366qu2PllZWeXapiQlJCTIz8/PtgQHB5fnUAAAAAD8g/aN2svDzUNHTx1Vem7Zj8RUdxWaQMFisdh9NgyjVNtZW7Zs0aOPPqp///vfSktL01dffaXdu3drxIgRFd6mJMXHxys3N9e2ZGRkVORQAAAAAJTB0+qp9o3aS6q5t8q5l6ezv7+/rFZrqRGb7OzsUiM7ZyUkJKhHjx56/PHHJUmdOnVS7dq11atXLz333HMKCgpSYGBgubYpSV5eXvLy8ipP+QAAAADKoUtgF208uFEbsjbolna3mF1OpSvXyJCnp6fCw8OVmppq156amqqoqKgy1zlx4oTc3Ox3Y7VaJcl272H37t1LbfObb7455zYBAAAAOF7XwK6SpA0HN5hbiIOUa2RIksaOHatBgwYpIiJC3bt31+zZs5Wenm677S0+Pl779+/Xu+++K0mKiYnR//t//09JSUm67rrrlJmZqdGjR6tbt25q0qSJJGnUqFHq3bu3XnjhBd1yyy1atGiRvv32W61cubISDxUAAABAedT0GeXKHYbi4uJ0+PBhTZ48WZmZmQoLC1NKSopatGghScrMzLR759CQIUOUn5+vWbNm6V//+pfq1aunq6++Wi+88IKtT1RUlD766CNNmDBBEydO1CWXXKJ58+YpMjKyEg4RAAAAQEV0DuwsSdpzdI+Onjqqet71zC2oklmMGjJPXl5envz8/JSbmytfX1+zywEAl8H5t2z8XADUFCEzQ7Tn6B59f+/36tOyj9nlXJALPQdXaDY5AAAAAK6hJt8qRxgCAAAAcE5dArpIIgwBAAAAcDGMDAEAYKLExESFhITI29tb4eHhWrFixTn7DhkyRBaLpdTSoUMHu34zZsxQ27ZtVatWLQUHB2vMmDE6depUhfcLADVV16Az02tvObRFhcWFJldTuQhDAACnNm/ePI0ePVrjx4/X+vXr1atXL/Xr189u5tK/mjlzpjIzM21LRkaGGjRooP79+9v6vP/++xo3bpwmTZqkrVu3Kjk5WfPmzVN8fHyF9wsANVWwb7Dqe9fX6ZLT2nJoi9nlVCrCEADAqU2fPl3Dhg3T8OHDFRoaqhkzZig4OFhJSUll9vfz81NgYKBtWbdunY4cOaKhQ4fa+qxevVo9evTQXXfdpZYtWyo6OloDBw7UunXrKrxfAKipLBaL7Va59ZnrzS2mkhGGAABOq7CwUGlpaYqOjrZrj46O1qpVqy5oG8nJyerbt6/tfXiS1LNnT6WlpWnNmjWSpF27diklJUU33nhjpe0XAGqSmvrcULlfugoAQFXJyclRcXGxAgIC7NoDAgKUlZV13vUzMzO1ZMkSffDBB3btAwYM0KFDh9SzZ08ZhqGioiI9+OCDGjduXIX3W1BQoIKCAtvnvLy8CzpGAKgObGHo4AZT66hsjAwBAJyexWKx+2wYRqm2ssydO1f16tVTbGysXfsPP/ygKVOmKDExUb/88osWLFigL774Qs8++2yF95uQkCA/Pz/bEhwcfAFHBgDVw19HhgzDMLeYSkQYAgA4LX9/f1mt1lKjMdnZ2aVGbf7OMAzNmTNHgwYNkqenp913EydO1KBBgzR8+HB17NhRt956q6ZOnaqEhASVlJRUaL/x8fHKzc21LRkZGRU4YgBwTqH+ofK0eiqvIE97ju4xu5xKQxgCADgtT09PhYeHKzU11a49NTVVUVFR/7jusmXLtHPnTg0bNqzUdydOnJCbm/0l0Gq1yjAMGYZRof16eXnJ19fXbgGAmsLD6qGwxmGSatZzQzwzBABwamPHjtWgQYMUERGh7t27a/bs2UpPT9eIESMknRmR2b9/v95991279ZKTkxUZGamwsLBS24yJidH06dPVtWtXRUZGaufOnZo4caJuvvlmWa3WC9ovALiaLgFd9EvmL9qQtUG3ht5qdjmVgjAEAHBqcXFxOnz4sCZPnqzMzEyFhYUpJSXFNjtcZmZmqXf/5Obmav78+Zo5c2aZ25wwYYIsFosmTJig/fv3q1GjRoqJidGUKVMueL8A4Gps02tn1ZzptS1GDXkCKi8vT35+fsrNzeXWBACoQpx/y8bPBUBNs2LvCvWe21vBvsFKH+PcL6C+0HMwzwwBAAAAOK9OAZ0kSRl5GTp84rDJ1VQOwhAAAACA8/Lz9lOr+q0kSRsPbjS5mspBGAIAAABwQf76vqGagDAEAAAA4IJ0DewqiTAEAAAAwMUwMgQAAADAJZ0NQ1sObdGpolPmFlMJCEMAAAAALkjTuk3VsFZDFRvF2py92exyLhphCAAAAMAFsVgsNepWOcIQAAAAgAtGGAIAAADgkmxh6OAGU+uoDIQhAAAAABfs7PTaG7M2qsQoMbmai0MYAgAAAHDB2vq3lZfVS/mF+dp9ZLfZ5VwUwhAAAACAC+bu5q6OAR0lSeuz1ptczcUhDAEAAAAoly4BXSRV/0kUCEMAAAAAyqWmzChHGAIAAABQLoQhAAAAAC6pU0AnWWTR/vz9OnT8kNnlVBhhCAAAAEC51PWqq0sbXCpJ2nhwo8nVVBxhCAAAAEC51YRb5QhDAAAAAMrtbBiqztNrE4YAAAAAlBsjQwAAAABc0tkw9HvO7zp5+qS5xVQQYQgAAABAuQXVCVIjn0YqMUr0W/ZvZpdTIYQhAAAAAOVmsVjUNairpOp7q5y72QU4A8MwdOL0CbPLAABT+Xj4yGKxmF0GAKAa6RLQRd/88Q1hqDo7cfqE6iTUMbsMADDVsfhjqu1Z2+wyAADViG0ShYMbTK2jorhNDgAAAECFnA1DG7M2qrik2NxiKoCRIZ25NeRY/DGzywAAU/l4+JhdAgCgmmnTsI1qudfS8dPH9ceRP9SmYRuzSyoXwpDOPPzFrSEAAABA+VjdrOoY0FFr9q/RhqwN1S4McZscAAAAgArrEtBFUvWcUY4wBAAAAKDCqvP02oQhAAAAABVmm1HOVcJQYmKiQkJC5O3trfDwcK1YseKcfYcMGSKLxVJq6dChg12/GTNmqG3btqpVq5aCg4M1ZswYnTp1qiLlAQBqmMq+7vTp06fMPjfeeKOtz9NPP13q+8DAQIceJwBURx0bd5RFFmUey9TBYwfNLqdcyh2G5s2bp9GjR2v8+PFav369evXqpX79+ik9Pb3M/jNnzlRmZqZtycjIUIMGDdS/f39bn/fff1/jxo3TpEmTtHXrViUnJ2vevHmKj4+v+JEBAGoER1x3FixYYNfnt99+k9VqtesjSR06dLDrt2nTJoceKwBUR7U9a9smTqhuo0PlDkPTp0/XsGHDNHz4cIWGhmrGjBkKDg5WUlJSmf39/PwUGBhoW9atW6cjR45o6NChtj6rV69Wjx49dNddd6lly5aKjo7WwIEDtW7duoofGQCgRnDEdadBgwZ2fVJTU+Xj41MqDLm7u9v1a9SokUOPFQCqq+p6q1y5wlBhYaHS0tIUHR1t1x4dHa1Vq1Zd0DaSk5PVt29ftWjRwtbWs2dPpaWlac2aNZKkXbt2KSUlxe52hb8rKChQXl6e3QIAqFkcdd0pq8+AAQNUu7b9axZ27NihJk2aKCQkRAMGDNCuXbvKfxAA4AJsYejgBlPrKK9yvWcoJydHxcXFCggIsGsPCAhQVlbWedfPzMzUkiVL9MEHH9i1DxgwQIcOHVLPnj1lGIaKior04IMPaty4cefcVkJCgp555pnylA8AqGYcdd35qzVr1ui3335TcnKyXXtkZKTeffddtWnTRgcPHtRzzz2nqKgobd68WQ0bNiy1nYKCAhUUFNg+80s6AK7EJUaGzrJYLHafDcMo1VaWuXPnql69eoqNjbVr/+GHHzRlyhQlJibql19+0YIFC/TFF1/o2WefPee24uPjlZuba1syMjIqcigAgGqgsq87f5WcnKywsDB169bNrr1fv366/fbb1bFjR/Xt21dffvmlJOmdd94pczsJCQny8/OzLcHBweetDwBqiq6BZ6bX3pazTccLj5tczYUrVxjy9/eX1Wot9du47OzsUr+1+zvDMDRnzhwNGjRInp6edt9NnDhRgwYN0vDhw9WxY0fdeuutmjp1qhISElRSUlLm9ry8vOTr62u3AABqFkddd846ceKEPvroIw0fPvy8tdSuXVsdO3bUjh07yvyeX9IBcGUBdQIUWCdQhgz9lv2b2eVcsHKFIU9PT4WHhys1NdWuPTU1VVFRUf+47rJly7Rz504NGzas1HcnTpyQm5t9KVarVYZhyDCM8pQIAKhBHHXdOevjjz9WQUGB7rnnnvPWUlBQoK1btyooKKjM7/klHQBXd/ZWufVZ680tpBzK9cyQJI0dO1aDBg1SRESEunfvrtmzZys9PV0jRoyQdOY3Y/v379e7775rt15ycrIiIyMVFhZWapsxMTGaPn26unbtqsjISO3cuVMTJ07UzTffLKvVWsFDAwDUBI647vy1T2xsbJnPAD322GOKiYlR8+bNlZ2dreeee055eXm69957K/cAAaCG6BLQRV/t/KpaPTdU7jAUFxenw4cPa/LkycrMzFRYWJhSUlJss/RkZmaWevdDbm6u5s+fr5kzZ5a5zQkTJshisWjChAnav3+/GjVqpJiYGE2ZMqUChwQAqEkccd2RpO3bt2vlypX65ptvyvx+3759GjhwoHJyctSoUSNdccUV+umnn/5xVjoAcGXVcRIFi1FD7kPLy8uTn5+fcnNzuTUBAKoQ59+y8XMB4Gq25WxTu9faqZZ7LeXH58vqZt4dXhd6Dq7QbHIAAAAA8FeXNrhUPh4+Oll0Ujv+LHuyGWdDGAIAAABw0axuVnUO6Cyp+twqRxgCAAAAUCmq23NDhCEAAAAAlaK6Ta9NGAIAAABQKWxhKHN9tXhfKGEIAAAAQKUIaxwmN4ubDp04pKxjWWaXc16EIQAAAACVwsfDR20btpVUPZ4bIgwBAAAAqDTVaRIFwhAAAACAStM1sKskacPBDeYWcgEIQwAAAAAqDSNDAAAAAFxS58AzL17dcXiHjhUeM7maf0YYAgAAAFBpGtdurCZ1m8iQoV8P/mp2Of+IMAQAAACgUlWXW+UIQwAAAAAqVZeALpIIQwAAAABcDCNDAAAAAFxS16Az02tvyt6kopIik6s5N8IQAAAAgErVqn4r1fGso1NFp7T98HazyzknwhAAAACASuVmcVPngDNTbK/PXG9yNedGGAIAAABQ6arDc0OEIQAAAACVzhaGDm4wtY5/QhgCAAAAUOn+OjJkGIa5xZwDYQgAAABApQtrHCarxaqcEzk6kH/A7HLKRBgCAAAAUOm83b0V2ihUkvM+N0QYAgAAAOAQzj6JAmEIAAAAgEN0CegiSVqf5ZzTaxOGAAAAADgEI0MAAAAAXFLnwDMvXv3jyB/KK8gzuZrSCEMAAAAAHMLfx1/NfJtJkn49+KvJ1ZRGGAIAAADgMM58qxxhCAAAAIDDdA3sKokwBAAAAMDFMDIEAAAAwCWdDUObsjfpdPFpc4v5G8IQAAAAAIdpWa+lfL18VVhcqN9zfje7HDuEIQCA00tMTFRISIi8vb0VHh6uFStWnLPvkCFDZLFYSi0dOnSw9enTp0+ZfW688cYK7xcAUDY3i5s6B5yZYtvZbpUjDAEAnNq8efM0evRojR8/XuvXr1evXr3Ur18/paenl9l/5syZyszMtC0ZGRlq0KCB+vfvb+uzYMECuz6//fabrFarXZ/y7hcAcG7O+twQYQgA4NSmT5+uYcOGafjw4QoNDdWMGTMUHByspKSkMvv7+fkpMDDQtqxbt05HjhzR0KFDbX0aNGhg1yc1NVU+Pj52Yai8+wUAnJstDB3cYGodf0cYAgA4rcLCQqWlpSk6OtquPTo6WqtWrbqgbSQnJ6tv375q0aLFP/YZMGCAateuXeH9FhQUKC8vz24BAJzx1+m1DcMwuZr/IQwBAJxWTk6OiouLFRAQYNceEBCgrKys866fmZmpJUuWaPjw4efss2bNGv322292fSqy34SEBPn5+dmW4ODg89YHAK6ifaP2cndz158n/9S+vH1ml2NDGAIAOD2LxWL32TCMUm1lmTt3rurVq6fY2Nhz9klOTlZYWJi6det2UfuNj49Xbm6ubcnIyDhvfQDgKrzcvdS+UXtJ0vqs9SZX8z+EIQCA0/L395fVai01GpOdnV1q1ObvDMPQnDlzNGjQIHl6epbZ58SJE/roo49KjRxVZL9eXl7y9fW1WwAA/+OMkygQhgAATsvT01Ph4eFKTU21a09NTVVUVNQ/rrts2TLt3LlTw4YNO2efjz/+WAUFBbrnnnsqbb8AgLJ1CegiybnCkLvZBQAA8E/Gjh2rQYMGKSIiQt27d9fs2bOVnp6uESNGSDpze9r+/fv17rvv2q2XnJysyMhIhYWFnXPbycnJio2NVcOGDcu9XwBA+TjjyBBhCADg1OLi4nT48GFNnjxZmZmZCgsLU0pKim12uMzMzFLv/snNzdX8+fM1c+bMc253+/btWrlypb755psK7RcAUD5nw9Duo7t19NRR1fOuZ2o9kmQxnGluu4uQl5cnPz8/5ebmcp82AFQhzr9l4+cCAKW1nNFSe3P3atmQZerdorfD9nOh52CeGQIAAABQJc6ODq3PdI4Z5SoUhhITExUSEiJvb2+Fh4drxYoV5+w7ZMgQWSyWUkuHDh3s+h09elQjR45UUFCQvL29FRoaqpSUlIqUBwAAAMAJ2Z4bOrjB1DrOKncYmjdvnkaPHq3x48dr/fr16tWrl/r161fqfu2zZs6cqczMTNuSkZGhBg0aqH///rY+hYWFuvbaa7Vnzx59+umn2rZtm9588001bdq04kcGAAAAwKk42yQK5Z5AYfr06Ro2bJjtnQwzZszQ119/raSkJCUkJJTqf/ZN3GctXLhQR44c0dChQ21tc+bM0Z9//qlVq1bJw8NDknhAFQAAAKhhzoahzdmbVVhcKE9r2e+BqyrlGhkqLCxUWlqaoqOj7dqjo6O1atWqC9pGcnKy+vbtaxd2Fi9erO7du2vkyJEKCAhQWFiYpk6dquLi4vKUBwAAAMCJtfBroXre9XS65LS2HtpqdjnlC0M5OTkqLi4u9fbtgICAUm/pLktmZqaWLFlS6k3fu3bt0qeffqri4mKlpKRowoQJevnllzVlypRzbqugoEB5eXl2CwAAAADnZbFYnOpWuQpNoGCxWOw+G4ZRqq0sc+fOVb169RQbG2vXXlJSosaNG2v27NkKDw/XgAEDNH78eCUlJZ1zWwkJCbZb8Pz8/BQcHFyRQwEAAABQhboEdJFUDcOQv7+/rFZrqVGg7OzsUqNFf2cYhubMmaNBgwbJ09P+3sCgoCC1adNGVqvV1hYaGqqsrCwVFhaWub34+Hjl5ubaloyMjPIcCgAAAAAT2KbXzjJ/eu1yhSFPT0+Fh4crNTXVrj01NVVRUVH/uO6yZcu0c+dODRs2rNR3PXr00M6dO1VSUmJr2759u4KCgkoFp7O8vLzk6+trtwAAAABwbn+9Tc4wDFNrKfdtcmPHjtVbb72lOXPmaOvWrRozZozS09M1YsQISWdGbAYPHlxqveTkZEVGRiosLKzUdw8++KAOHz6sUaNGafv27fryyy81depUjRw5sgKHBAAAAMBZhTYKlYebh3ILcrU3d6+ptZR7au24uDgdPnxYkydPVmZmpsLCwpSSkmKbHS4zM7PUO4dyc3M1f/58zZw5s8xtBgcH65tvvtGYMWPUqVMnNW3aVKNGjdKTTz5ZgUMCAAAA4Kw8rZ7q0LiDNmRt0IasDWpZr6VptVgMs8emKkleXp78/PyUm5vLLXMAUIU4/5aNnwsAnNvQRUM1d8NcTbpykp7u83Slb/9Cz8EVmk0OAAAAACqqa2BXSebPKEcYAgAAAFClnOVdQ4QhAAAAAFWqc0BnSdLe3L368+SfptVBGAIAAABQpfy8/RRSL0SStDFro2l1EIYAAAAAVDlnuFWOMAQAAACgytnC0MENptVAGAIAAABQ5RgZAgAAAOCSzk6vveXQFhUUFZhSA2EIAAAAQJVr5ttMDWo1UFFJkbYc2mJKDYQhAAAAAFXOYrHYbpVbn7XelBoIQwAAAABM0SWgiyTznhsiDAEAAAAwhdmTKBCGAAAAAJjir2GoxCip8v0ThgAAAACYop1/O3lZvZRfmK89R/dU+f4JQwAAAABM4WH1UFjjMEnm3CpHGAIAAABgGjOfGyIMAQAAADCNmdNrE4YAAAAAmIaRIQAAAAAuqVNAJ0nSvrx9yjmRU6X7JgwBAAAAMI2vl68uqX+JJGlj1sYq3TdhCADg9BITExUSEiJvb2+Fh4drxYoV5+w7ZMgQWSyWUkuHDh3s+h09elQjR45UUFCQvL29FRoaqpSUFNv3Tz/9dKltBAYGOuwYAcCVmXWrHGEIAODU5s2bp9GjR2v8+PFav369evXqpX79+ik9Pb3M/jNnzlRmZqZtycjIUIMGDdS/f39bn8LCQl177bXas2ePPv30U23btk1vvvmmmjZtaretDh062G1r06ZNDj1WAHBVXQO7SpI2HNxQpft1r9K9AQBQTtOnT9ewYcM0fPhwSdKMGTP09ddfKykpSQkJCaX6+/n5yc/Pz/Z54cKFOnLkiIYOHWprmzNnjv7880+tWrVKHh4ekqQWLVqU2pa7uzujQQBQBRgZAgDgbwoLC5WWlqbo6Gi79ujoaK1ateqCtpGcnKy+ffvahZ3Fixere/fuGjlypAICAhQWFqapU6equLjYbt0dO3aoSZMmCgkJ0YABA7Rr165z7qegoEB5eXl2CwDgwpwNQ1sPbdXJ0yerbL+EIQCA08rJyVFxcbECAgLs2gMCApSVlXXe9TMzM7VkyRLbqNJZu3bt0qeffqri4mKlpKRowoQJevnllzVlyhRbn8jISL377rv6+uuv9eabbyorK0tRUVE6fPhwmftKSEiwjUr5+fkpODi4AkcMAK6pSd0m8vfxV7FRrM2HNlfZfglDAACnZ7FY7D4bhlGqrSxz585VvXr1FBsba9deUlKixo0ba/bs2QoPD9eAAQM0fvx4JSUl2fr069dPt99+uzp27Ki+ffvqyy+/lCS98847Ze4rPj5eubm5tiUjI6OcRwkArstisZhyqxzPDAEAnJa/v7+sVmupUaDs7OxSo0V/ZxiG5syZo0GDBsnT09Puu6CgIHl4eMhqtdraQkNDlZWVpcLCwlL9Jal27drq2LGjduzYUeb+vLy85OXldaGHBgD4my4BXfTtrm+rNAwxMgQAcFqenp4KDw9XamqqXXtqaqqioqL+cd1ly5Zp586dGjZsWKnvevTooZ07d6qkpMTWtn37dgUFBZUZhKQzzwRt3bpVQUFBFTgSAMD5mDEyRBgCADi1sWPH6q233tKcOXO0detWjRkzRunp6RoxYoSkM7enDR48uNR6ycnJioyMVFhYWKnvHnzwQR0+fFijRo3S9u3b9eWXX2rq1KkaOXKkrc9jjz2mZcuWaffu3fr55591xx13KC8vT/fee6/jDhYAXFjXoDPTa288uFElRsl5elcObpMDADi1uLg4HT58WJMnT1ZmZqbCwsKUkpJimx0uMzOz1DuHcnNzNX/+fM2cObPMbQYHB+ubb77RmDFj1KlTJzVt2lSjRo3Sk08+aeuzb98+DRw4UDk5OWrUqJGuuOIK/fTTT2VOwQ0AuHhtGraRt7u3jhUe0x9//qHWDVs7fJ8WwzAMh++lCuTl5cnPz0+5ubny9fU1uxwAcBmcf8vGzwUAyq/bm9209sBafXzHx+rfof/5VziHCz0Hc5scAAAAAKdQ1c8NEYYAAAAAOAVbGDq4oUr2RxgCAAAA4BQYGQIAAADgkjoFdJJFFh3IP6Ds49kO3x9hCAAAAIBTqONZxzaL3MasjQ7fH2EIAAAAgNM4e6vc+qz1Dt8XYQgAAACA0+gS0EVS1Tw3RBgCAAAA4DSqchIFd4fvAQAAAAAuUFRwlJYNWabOAZ0dvi/CEAAAAACn4eftp94telfJvrhNDgAAAIBLIgwBAAAAcEmEIQAAAAAuiTAEAAAAwCURhgAAAAC4JMIQAAAAAJdEGAIAAADgkmrMe4YMw5Ak5eXlmVwJALiWs+fds+dhnMF1CQDMc6HXphoThvLz8yVJwcHBJlcCAK4pPz9ffn5+ZpfhNLguAYD5zndtshg15Fd5JSUlOnDggOrWrSuLxVLu9fPy8hQcHKyMjAz5+vo6oELnxvFz/Bw/x1/R4zcMQ/n5+WrSpInc3Lj7+iyuSxfP1X8GHD/Hz/E7/tpUY0aG3Nzc1KxZs4vejq+vr0v+D+4sjp/j5/g5/opgRKg0rkuVx9V/Bhw/x8/xO+7axK/wAAAAALgkwhAAAAAAl0QY+j9eXl6aNGmSvLy8zC7FFBw/x8/xc/yuevzOiv8u/Aw4fo6f43f88deYCRQAAAAAoDwYGQIAAADgkghDAAAAAFwSYQgAAACASyIMAQAAAHBJhCFJiYmJCgkJkbe3t8LDw7VixQqzS6oSCQkJuvzyy1W3bl01btxYsbGx2rZtm9llmSYhIUEWi0WjR482u5Qqs3//ft1zzz1q2LChfHx81KVLF6WlpZldVpUoKirShAkTFBISolq1aqlVq1aaPHmySkpKzC7NYZYvX66YmBg1adJEFotFCxcutPveMAw9/fTTatKkiWrVqqU+ffpo8+bN5hQLrk1cmyRxbeLaVLOvTc5wXXL5MDRv3jyNHj1a48eP1/r169WrVy/169dP6enpZpfmcMuWLdPIkSP1008/KTU1VUVFRYqOjtbx48fNLq3KrV27VrNnz1anTp3MLqXKHDlyRD169JCHh4eWLFmiLVu26OWXX1a9evXMLq1KvPDCC3r99dc1a9Ysbd26VdOmTdOLL76oV1991ezSHOb48ePq3LmzZs2aVeb306ZN0/Tp0zVr1iytXbtWgYGBuvbaa5Wfn1/FlYJrE9cmiWsT16aaf21yiuuS4eK6detmjBgxwq6tXbt2xrhx40yqyDzZ2dmGJGPZsmVml1Kl8vPzjdatWxupqanGlVdeaYwaNcrskqrEk08+afTs2dPsMkxz4403Gvfdd59d22233Wbcc889JlVUtSQZn332me1zSUmJERgYaDz//PO2tlOnThl+fn7G66+/bkKFro1r0/9wbeLa5Epc+dpk1nXJpUeGCgsLlZaWpujoaLv26OhorVq1yqSqzJObmytJatCggcmVVK2RI0fqxhtvVN++fc0upUotXrxYERER6t+/vxo3bqyuXbvqzTffNLusKtOzZ09999132r59uyRp48aNWrlypW644QaTKzPH7t27lZWVZXc+9PLy0pVXXumS50MzcW2yx7WJaxPXJte8NlXVdcm90rZUDeXk5Ki4uFgBAQF27QEBAcrKyjKpKnMYhqGxY8eqZ8+eCgsLM7ucKvPRRx/pl19+0dq1a80upcrt2rVLSUlJGjt2rJ566imtWbNGjz76qLy8vDR48GCzy3O4J598Urm5uWrXrp2sVquKi4s1ZcoUDRw40OzSTHH2nFfW+XDv3r1mlOSyuDb9D9cmrk1cm1z32lRV1yWXDkNnWSwWu8+GYZRqq+kefvhh/frrr1q5cqXZpVSZjIwMjRo1St988428vb3NLqfKlZSUKCIiQlOnTpUkde3aVZs3b1ZSUpJLXHDmzZun9957Tx988IE6dOigDRs2aPTo0WrSpInuvfdes8szDedD58F/C65NXJu4NnFtcvy50KXDkL+/v6xWa6nftGVnZ5dKoTXZI488osWLF2v58uVq1qyZ2eVUmbS0NGVnZys8PNzWVlxcrOXLl2vWrFkqKCiQ1Wo1sULHCgoKUvv27e3aQkNDNX/+fJMqqlqPP/64xo0bpwEDBkiSOnbsqL179yohIcElLziBgYGSzvwmLigoyNbuaudDZ8C16QyuTVybzuLa5JrXpqq6Lrn0M0Oenp4KDw9XamqqXXtqaqqioqJMqqrqGIahhx9+WAsWLNDSpUsVEhJidklV6pprrtGmTZu0YcMG2xIREaG7775bGzZsqNEXG0nq0aNHqelqt2/frhYtWphUUdU6ceKE3NzsT4FWq7XGTl96PiEhIQoMDLQ7HxYWFmrZsmUucT50JlybuDZxbeLa9Feuem2qquuSS48MSdLYsWM1aNAgRUREqHv37po9e7bS09M1YsQIs0tzuJEjR+qDDz7QokWLVLduXdtvIf38/FSrVi2Tq3O8unXrlroHvXbt2mrYsKFL3Js+ZswYRUVFaerUqbrzzju1Zs0azZ49W7Nnzza7tCoRExOjKVOmqHnz5urQoYPWr1+v6dOn67777jO7NIc5duyYdu7cafu8e/dubdiwQQ0aNFDz5s01evRoTZ06Va1bt1br1q01depU+fj46K677jKxatfEtYlr019xbeLaVFOvTU5xXaq0eemqsddee81o0aKF4enpaVx22WUuM32npDKXt99+2+zSTONK05cahmF8/vnnRlhYmOHl5WW0a9fOmD17ttklVZm8vDxj1KhRRvPmzQ1vb2+jVatWxvjx442CggKzS3OY77//vsz/z997772GYZyZxnTSpElGYGCg4eXlZfTu3dvYtGmTuUW7MK5NXJvO4trEtammXpuc4bpkMQzDqLxoBQAAAADVg0s/MwQAAADAdRGGAAAAALgkwhAAAAAAl0QYAgAAAOCSCEMAAAAAXBJhCAAAAIBLIgwBAAAAcEmEIaCc5s6dK4vFonXr1pldCgAAAC4CYQgAAACASyIMAQAAAHBJhCGgkp06dUr/+te/1KVLF/n5+alBgwbq3r27Fi1aVKrvJ598osjISPn5+cnHx0etWrXSfffdZ/u+pKREzz33nNq2batatWqpXr166tSpk2bOnGm3nZUrV+qaa65R3bp15ePjo6ioKH355ZcOP1YAAIDqzN3sAoCapqCgQH/++acee+wxNW3aVIWFhfr2229122236e2339bgwYMlSatXr1ZcXJzi4uL09NNPy9vbW3v37tXSpUtt25o2bZqefvppTZgwQb1799bp06f1+++/6+jRo7Y+y5Yt07XXXqtOnTopOTlZXl5eSkxMVExMjD788EPFxcVV9Y8AAACgWrAYhmGYXQRQncydO1dDhw7V2rVrFRERcd7+xcXFMgxDI0aM0C+//KJffvlFkvTyyy/rscce09GjR+Xn51fmujExMdq3b5/Wr19/zu13795du3bt0h9//KE6derY9tmlSxcdPXpU6enpslgsFThSAACAmo3b5AAH+OSTT9SjRw/VqVNH7u7u8vDwUHJysrZu3Wrrc/nll0uS7rzzTn388cfav39/qe1069ZNGzdu1EMPPaSvv/5aeXl5dt8fP35cP//8s+644w5bEJIkq9WqQYMGad++fdq2bZuDjhIAAKB6IwwBlWzBggW688471bRpU7333ntavXq11q5dq/vuu0+nTp2y9evdu7cWLlyooqIiDR48WM2aNVNYWJg+/PBDW5/4+Hi99NJL+umnn9SvXz81bNhQ11xzjW1a7yNHjsgwDAUFBZWqo0mTJpKkw4cPO/iIAQAAqifCEFDJ3nvvPYWEhGjevHmKjY3VFVdcoYiICBUUFJTqe8stt+i7775Tbm6ufvjhBzVr1kx33XWXVq9eLUlyd3fX2LFj9csvv+jPP//Uhx9+qIyMDF133XU6ceKE6tevLzc3N2VmZpba9oEDByRJ/v7+jj1gAACAaoowBFQyi8UiT09Pu+d0srKyypxN7iwvLy9deeWVeuGFFySpzGeE6tWrpzvuuEMjR47Un3/+qT179qh27dqKjIzUggULdPLkSVvfkpISvffee2rWrJnatGlTiUcHAABQczCbHFBBS5cu1Z49e0q1X3311VqwYIEeeugh3XHHHcrIyNCzzz6roKAg7dixw9bv3//+t/bt26drrrlGzZo109GjRzVz5kx5eHjoyiuvlHRmAoWwsDBFRESoUaNG2rt3r2bMmKEWLVqodevWkqSEhARde+21uuqqq/TYY4/J09NTiYmJ+u233/Thhx8yeQIAAMA5EIaACnryySfLbN+9e7eOHTum119/XXPmzFGrVq00btw47du3T88884ytX2RkpNatW6cnn3xShw4dUr169RQREaGlS5eqQ4cOkqSrrrpK8+fP11tvvaW8vDwFBgbq2muv1cSJE+Xh4SFJuvLKK7V06VJNmjRJQ4YMUUlJiTp37qzFixfrpptucvwPAgAAoJpiam0AAAAALolnhgAAAAC4JMIQAAAAAJdEGAIAAADgkghDAAAAAFwSYQgAAACASyIMAQAAAHBJNeY9QyUlJTpw4IDq1q3LSyYBoAoZhqH8/Hw1adJEbm78jg0AUH3UmDB04MABBQcHm10GALisjIwMNWvWzOwyAAC4YA4LQ4mJiXrxxReVmZmpDh06aMaMGerVq9c5+7///vuaNm2aduzYIT8/P11//fV66aWX1LBhwwvaX926dSWduRj7+vpWyjEAAM4vLy9PwcHBtvMwAADVhUPC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",
      "text/plain": [
       "<Figure size 1000x700 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "scores=[]\n",
    "alphas=[0.0001,0.0005,0.001,0.005,0.01,0.05,0.1,0.5,1.5,10,50]\n",
    "for index,model in enumerate(models):\n",
    "    scores.append([])\n",
    "    for alpha in alphas:\n",
    "        if index>0:\n",
    "            model.alpha=alpha\n",
    "        model.fit(x_train,y_train)\n",
    "        scores[index].append(model.score(x_test,y_test))\n",
    "fig=plt.figure(figsize=(10,7))\n",
    "for i,name in enumerate(names):\n",
    "    plt.subplot(2,2,i+1)\n",
    "    plt.plot(range(len(alphas)),scores[i],'g-')\n",
    "    plt.title(name)\n",
    "    print('%s模型的最大预测准确率为：%.5f'%(name,max(scores[i])))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ed163a8b-fef2-4a1a-bd8d-c8e2bb3218fa",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.13.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
